package com.common方法;

/**
 * @author liyiruo
 * @Description 重复的数据将会被覆盖
 * @Date 2024/4/22 下午2:40
 */
import java.util.*;

public class SortableMapWithDuplicates {
    public static void main(String[] args) {
        // 创建一个LinkedHashMap来存储键值对，允许重复的键
        Map<String, Integer> map = new LinkedHashMap<>();
        map.put("Apple", 10);
        map.put("Banana", 20);
        map.put("Apple", 30); // 允许重复的键
        map.put("Cherry", 40);
        map.put("Banana", 50); // 允许重复的键

        // 创建一个ArrayList来存储键，并对其进行排序
        List<String> keys = new ArrayList<>(map.keySet());
        Collections.sort(keys, Comparator.naturalOrder()); // 使用自然顺序排序
        // 如果需要自定义排序，可以传递一个自定义的Comparator

        // 遍历排序后的键列表，并打印对应的键值对
        for (String key : keys) {
            List<Integer> values = new ArrayList<>();
            for (Map.Entry<String, Integer> entry : map.entrySet()) {
                if (entry.getKey().equals(key)) {
                    values.add(entry.getValue());
                }
            }
            System.out.println("Key: " + key + ", Values: " + values);
        }
    }
}
